home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / t_sys5 / 92052tar.gz / 920528.tar / kissdump.c < prev    next >
C/C++ Source or Header  |  1991-05-22  |  1KB  |  81 lines

  1. /* @(#) $Header: kissdump.c,v 1.4 91/05/17 17:06:55 deyke Exp $ */
  2.  
  3. /* Tracing routines for KISS TNC
  4.  * Copyright 1991 Phil Karn, KA9Q
  5.  */
  6. #include "global.h"
  7. #include "mbuf.h"
  8. #include "kiss.h"
  9. #include "devparam.h"
  10. #include "ax25.h"
  11. #include "trace.h"
  12. #include "crc.h"
  13.  
  14. void
  15. ki_dump(fp,bpp,check)
  16. FILE *fp;
  17. struct mbuf **bpp;
  18. int check;
  19. {
  20.     int type;
  21.     int val;
  22.  
  23.     fprintf(fp,"KISS: ");
  24.     if(*bpp && (*(*bpp)->data & 0x80))
  25.         if(check_crc(*bpp)){
  26.             fprintf(fp," bad CRC!\n");
  27.             return;
  28.         }else{
  29.             fprintf(fp,"CRC ");
  30.         }
  31.     type = PULLCHAR(bpp) & 0x7f;
  32.     if(type == PARAM_DATA){
  33.         fprintf(fp,"Data\n");
  34.         ax25_dump(fp,bpp,check);
  35.         return;
  36.     }
  37.     val = PULLCHAR(bpp);
  38.     switch(type){
  39.     case PARAM_TXDELAY:
  40.         fprintf(fp,"TX Delay: %lu ms\n",val * 10L);
  41.         break;
  42.     case PARAM_PERSIST:
  43.         fprintf(fp,"Persistence: %u/256\n",val + 1);
  44.         break;
  45.     case PARAM_SLOTTIME:
  46.         fprintf(fp,"Slot time: %lu ms\n",val * 10L);
  47.         break;
  48.     case PARAM_TXTAIL:
  49.         fprintf(fp,"TX Tail time: %lu ms\n",val * 10L);
  50.         break;
  51.     case PARAM_FULLDUP:
  52.         fprintf(fp,"Duplex: %s\n",val == 0 ? "Half" : "Full");
  53.         break;
  54.     case PARAM_HW:
  55.         fprintf(fp,"Hardware %u\n",val);
  56.         break;
  57.     case PARAM_RETURN:
  58.         fprintf(fp,"RETURN\n");
  59.         break;
  60.     default:
  61.         fprintf(fp,"code %u arg %u\n",type,val);
  62.         break;
  63.     }
  64. }
  65.  
  66. int
  67. ki_forus(iface,bp)
  68. struct iface *iface;
  69. struct mbuf *bp;
  70. {
  71.     struct mbuf *bpp;
  72.     int i;
  73.  
  74.     if(bp->data[0] != PARAM_DATA)
  75.         return 0;
  76.     dup_p(&bpp,bp,1,AXALEN);
  77.     i = ax_forus(iface,bpp);
  78.     free_p(bpp);
  79.     return i;
  80. }
  81.